using System;
using System.Collections.Generic;
using System.Text;
using Iesi.Collections.Generic;
using ClimbTracker.BusinessLogic.Interface;

namespace ClimbTracker.BusinessLogic.Entities
{
    public class ClimbAttempt : Startable, Reportable
    {
        public ClimbAttempt()
        {
        }

        #region Members

        private Route _route;
        private Competition _competition;
        private WallInstallation _highestHold;
        private Competitor _competitor;
        private string _attemptLog;
        private int _climbAttemptID;
        private double _score;

        #endregion



        public virtual Route Route
        {
            get { return _route; }
            set { _route = value; }
        }

        public virtual Competition Competition
        {
            get { return _competition; }
            set { _competition = value; }
        }

        public virtual WallInstallation HighestHold
        {
            get { return _highestHold; }
            set { _highestHold = value; }
        }

        public virtual Competitor Competitor
        {
            get { return _competitor; }
            set { _competitor = value; }
        }

        public virtual string AttemptLog
        {
            get { return _attemptLog; }
            set { _attemptLog = value; }
        }
        
        public virtual int ClimbAttemptID
        {
            get { return _climbAttemptID; }
            set { _climbAttemptID = value; }
        }

        public virtual double Score
        {
            get { return _score; }
            set { _score = value; }
        }




        /*
        public virtual ClimbAttempt DBretrieveByID(int ID)
        {
            return DBManager.Instance.ClimbAttemptDao.retrieveClimbAttemptByID(ID);
        }

        public virtual void DBcreate()
        {
            DBManager.Instance.ClimbAttemptDao.createClimbAttempt(this);
        }

        public virtual void DBdelete()
        {
            DBManager.Instance.ClimbAttemptDao.deleteClimbAttempt(this);
        }

        public virtual void DBsave()
        {
            DBManager.Instance.ClimbAttemptDao.updateClimbAttempt(this);
        }
        */




        #region Startable Members

        public void start()
        {
        }

        public void pause()
        {
        }

        public void stop()
        {
        }

        #endregion


        #region Database funtions

        public virtual void createReport()
        {
            throw new System.NotImplementedException();
        }

        public virtual void onGrabHold()
        {
            throw new System.NotImplementedException();
        }

        public virtual void onClipQuickdraw()
        {
            throw new System.NotImplementedException();
        }

        public virtual void onFall()
        {
            throw new System.NotImplementedException();
        }

        #endregion
        

        #region Startable Members


        #endregion
    }
}
